-
Notifications
You must be signed in to change notification settings - Fork 4.8k
continuation of image_ref work #1406
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
bparees
commented
Mar 20, 2015
- make From a pointer
|
@mfojtik fyi. |
6b3a19b to
a3efca1
Compare
|
[test] |
|
@mfojtik @smarterclayton there is a fairly ugly consequence to this change... specifically, buildConfigs are defined to prefer their "From" field but use the "Image" field if From is not present. (in fact it's a validation error to supply both, currently). However, Build objects (which use the same STIStrategy type as a field) logically require that you only supply an Image. And even if we allowed you to supply a From field to a Build (on the assumption we'd resolve the From reference as we created the build pod), we'd still have to prefer the Image field since the Image field might have been set earlier by the Tag resolution logic. So it would have the inverse precedence of the BuildConfig. For now i've documented it as saying that Build objects only use the Image field. I don't really want to create a second STIStrategy type (that only has an Image field), but as things stand now, Build objects are a little funky. My assumption/justificatin/hope for now is that for the most part people will be creating BuildConfigs, not Builds (especially once we have @soltysh 's new build creation endpoints) and thus people won't be exposed to the Build object semantics. And i do think it's better that Builds only have Image, not From references, because it makes them more re-runnable. Adding something that's dynamically resolved (like an ImageRepo reference) makes them significantly less immutable. |
3a73824 to
9c32817
Compare
|
continuous-integration/openshift-jenkins/test SUCCESS (https://ci.openshift.redhat.com/jenkins/job/test_pull_requests_openshift3/1431/) |
| @@ -53,11 +53,25 @@ func init() { | |||
| func(in *newer.STIBuildStrategy, out *STIBuildStrategy, s conversion.Scope) error { | |||
| out.BuilderImage = in.Image | |||
| out.Image = in.Image | |||
| if in.From != nil { | |||
| out.From = &kapi.ObjectReference{ | |||
| Name: in.From.Name, | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If this is a ImageRepository reference, can you set the Kind as well?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
set
pkg/build/util/generate.go
Outdated
| @@ -13,7 +14,8 @@ import ( | |||
| // GenerateBuildFromConfig creates a new build based on a given BuildConfig. Optionally a SourceRevision for the new | |||
| // build can be specified. Also optionally a list of image names to be substituted can be supplied. Values in the BuildConfig | |||
| // that have a substitution provided will be replaced in the resulting Build | |||
| func GenerateBuildFromConfig(bc *buildapi.BuildConfig, r *buildapi.SourceRevision, imageSubstitutions map[string]string) (build *buildapi.Build) { | |||
| func GenerateBuildFromConfig(bc *buildapi.BuildConfig, r *buildapi.SourceRevision, imageSubstitutions map[string]string, | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
s/r/ref/
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you know that isn't even something this pull introduced, right? :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
renamed
37049e9 to
26473bb
Compare
pkg/build/util/generate.go
Outdated
| case config.Parameters.Strategy.Type == buildapi.CustomBuildStrategyType: | ||
| build, err = GenerateBuildUsingImageTriggerTag(config, revision, imageRepoGetter) | ||
| default: | ||
| err = fmt.Errorf("Build strategy type must be set") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why not just return error here?
af9e53b to
66ea94e
Compare
pkg/build/util/generate.go
Outdated
| tag = buildapi.DefaultImageTag | ||
| } | ||
|
|
||
| var imageRepo *imageapi.ImageRepository |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why declaring these by var? you can just do imageRepo, err :=
pkg/build/util/generate.go
Outdated
| return nil, fmt.Errorf("Docker Image Repository %s has no tag %s", from.Name, tag) | ||
| } | ||
| glog.V(4).Infof("Generating build from config for build config %s", config.Name) | ||
| build := GenerateBuildFromConfig(config, revision, nil, imageRepoSubstitutions) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nuke 'build' var and just return GenerateBuildConfig(), nil
82eccd1 to
09b5271
Compare
|
fixes #1418 |
|
LGTM once it's rebased and passes the tests. Good job @bparees 🎱 |
|
@soltysh mostly not my work but thanks :/ |
|
Just got confirmation from @mfojtik he's OK with it, thus [merge]-ing. |
|
continuous-integration/openshift-jenkins/merge SUCCESS (https://ci.openshift.redhat.com/jenkins/job/merge_pull_requests_openshift3/1268/) (Image: devenv-fedora_1115) |
|
Evaluated for origin up to ba587bc |
Merged by openshift-bot
|
I've rolled this back because it was randomly failing integration tests and end to end. |
|
Please resubmit |
was seen local, and the last two merge e2e's failed (after this landed) |
|
only one merge e2e failed since this landed and it was due to the DB pod not starting. |
|
When is this going to be added to Docker and Custom build strategies? What card / pull tracks that work? |
|
There's a card on the next list, it's high on my priorities but I was waiting for the imagestream changes to land so I didn't have to deal with a bunch of rebases. Hoping to start it this week but I also have the PHP image on my list and a variety of other tidbits. Ben Parees | OpenShift From: Clayton Coleman notifications@github.com When is this going to be added to Docker and Custom build strategies? What card / pull tracks that work? Reply to this email directly or view it on GitHub: |
|
K. with the status stuff I'm deep in the guts of using the objects programmatically and I'm seeing the faults.
|
|
Seeing which faults? Ben Parees | OpenShift From: Clayton Coleman notifications@github.com K. with the status stuff I'm deep in the guts of using the objects programmatically and I'm seeing the faults.
Reply to this email directly or view it on GitHub: |
|
In the approachability and usability of the APIs. Same stuff we were discussing last week, difficult to write clean logic for both triggers and builds (and then working with deployments and having opposite behavior for triggers now). The objects are complex, but we don't have common iteration logic. I'm thinking our trigger object references should be to ImageStreamTags now - which would remove the need for the separate tag field. We might also want to fold docker image references directly into a virtual Kind and treat them as object references. All things we should discuss as part of our plan for v1.
|
…service-catalog/' changes from 3aacfedec6..aa27078754 aa27078754 origin build: add origin tooling bcf37fd 0.1.0-rc2 chart updates (openshift#1410) 4ab0a0a add back 'Processing' message for instance deletion (openshift#1332) 0ecbcb1 Update logs for Cluster service plans. (openshift#1389) 8b491ef Fix a quoting nit (openshift#1400) 63685e4 add orphan mitigation-specific conditions for instances (openshift#1378) adee662 Updated missed fields in service and plan specs (openshift#1406) 2095919 Handle default plan setting when using k8s names (openshift#1405) 607ba66 Document rbacEnable. (openshift#1404) 268294e Adding rbac definition for v1 api endpoint. (openshift#1284) 103288d differentiate between failed updates and provisions during deletion (openshift#1383) eba8ba4 enable API aggregation and Service Catalog RBAC on Jenkins (openshift#1333) 5a93315 Validate relistDuration is non-negative (openshift#1395) e279d21 Fix log messages for secrets (openshift#1385) 87fa8c9 fix status update when starting orphan mitigation (openshift#1372) 11f18f3 Switch to wget for integration apiserver checks (openshift#1384) 8c44a7d update OSB client to 2.13 (openshift#1392) e64bbd1 default plan admission controller: filter list of service plans/service classes by the class name (openshift#1351) 6648c0e Check field names. Fix issue 1291 (openshift#1379) 5319841 update comment for instance generation check (openshift#1382) 7d5823f remove internal poll method (openshift#1381) 07d3068 Rework the logging for controller_instance. (openshift#1371) 5f4ca01 address PR comment as a followup (openshift#1380) 485d5e6 Add support for specifying plan using K8S names. (openshift#1377) 662bba8 Log number of secret keys created for binding credential (openshift#1375) 8ad6a31 Move controller constants into correct files (openshift#1373) 7bd66dd Adding type to log. (openshift#1339) 1ce5c4d Remove k8s/k8s dependency (openshift#1355) b458323 Adding log formatting for BindingController. (openshift#1352) 275eb11 rename test variables to be consistent (openshift#1315) ffd6b8b travis: skip cleanup before deploy (openshift#1368) d5ecc04 fix travis tag checker (openshift#1365) 2cae0ee Minor updates to README (openshift#1360) REVERT: 3aacfedec6 carry: Set external plan name for service-catalog walkthrough REVERT: 3ec9e5b07a origin build: add origin tooling git-subtree-dir: cmd/service-catalog/go/src/github.com/kubernetes-incubator/service-catalog git-subtree-split: aa2707875461dd51be3731b1d94b5cfc3b9a3976